home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / Basic / Visual Basic.60 / COMMON / TOOLS / VB / UNSUPPRT / VOICE / WAVESTRM / MCI_DEFS.BAS < prev    next >
Encoding:
BASIC Source File  |  1997-01-16  |  8.9 KB  |  143 lines

  1. Attribute VB_Name = "MCI_Defs"
  2. ' Public Constants
  3. Public Const MAXEXTRABYTES = 3          ' Maximum (Extra Bytes + 1) In Non PCM Wave Formats...
  4. Public Const MAXBUFFERS = 500           ' Maximum Wave Buffer Array Member
  5. Public Const MINBUFFERS = 0             ' Minimum Wave Buffer Array Member
  6.  
  7. '== MCI Wave Constants ================================================
  8. ' Sound Quality
  9. Public Const c8_0kHz = 8000             ' 8.0 khz
  10. Public Const c11_025kHz = 11025         ' 11.025 khz
  11. Public Const c22_05kHz = 22050          ' 22.05 khz
  12. Public Const c44_1kHz = 44010           ' 44.1 khz
  13.  
  14. ' Sound Format
  15. Public Const WAVE_FORMAT_PCM = &H1                  ' Microsoft Windows PCM Wave Format
  16. Public Const WAVE_FORMAT_ADPCM = &H11               ' ADPCM Wave Format
  17. Public Const WAVE_FORMAT_IMA_ADPCM = &H11           ' IMA ADPCM Wave Format
  18. Public Const WAVE_FORMAT_DVI_ADPCM = &H11           ' DVI ADPCM Wave Format
  19. Public Const WAVE_FORMAT_DSPGROUP_TRUESPEECH = &H22 ' DSP Group Wave Format
  20. Public Const WAVE_FORMAT_GSM610 = &H31              ' GSM610 Wave Format
  21. Public Const WAVE_FORMAT_MSN_AUDIO = &H32           ' MSN Audio Wave Format
  22.  
  23. ' PCM Wave Format Types
  24. Public Const WAVE_FORMAT_1M08 = &H1     '  11.025 kHz, Mono,   8-bit
  25. Public Const WAVE_FORMAT_1M16 = &H4     '  11.025 kHz, Mono,   16-bit
  26. Public Const WAVE_FORMAT_1S08 = &H2     '  11.025 kHz, Stereo, 8-bit
  27. Public Const WAVE_FORMAT_1S16 = &H8     '  11.025 kHz, Stereo, 16-bit
  28. Public Const WAVE_FORMAT_2M08 = &H10    '  22.05  kHz, Mono,   8-bit
  29. Public Const WAVE_FORMAT_2M16 = &H40    '  22.05  kHz, Mono,   16-bit
  30. Public Const WAVE_FORMAT_2S08 = &H20    '  22.05  kHz, Stereo, 8-bit
  31. Public Const WAVE_FORMAT_2S16 = &H80    '  22.05  kHz, Stereo, 16-bit
  32. Public Const WAVE_FORMAT_4M08 = &H100   '  44.1   kHz, Mono,   8-bit
  33. Public Const WAVE_FORMAT_4M16 = &H400   '  44.1   kHz, Mono,   16-bit
  34. Public Const WAVE_FORMAT_4S08 = &H200   '  44.1   kHz, Stereo, 8-bit
  35. Public Const WAVE_FORMAT_4S16 = &H800   '  44.1   kHz, Stereo, 16-bit
  36.  
  37. '== Wave...Open() Constants ===========================================
  38. Public Const WAVE_FORMAT_QUERY = &H1&   ' Query wave format flag
  39. Public Const WAVE_MAPPER = (-1)         ' Maps To First Available Sound Device
  40. Public Const WAVE_ALLOWSYNC = &H2&      ' Asynchronous playback flag
  41. Public Const CALLBACK_WINDOW = &H10000  ' dwCallback is a HWND
  42. Public Const CALLBACK_NULL = &H0&       ' no callback
  43.  
  44. '== MCI WaveHeader Bit Values In dwflags ==============================
  45. Public Const WHDR_DONE = &H1&           '[00001][01] done bit
  46. Public Const WHDR_PREPARED = &H2&       '[00010][02] set if this header has been prepared
  47. Public Const WHDR_BEGINLOOP = &H4&      '[00100][04] loop start block
  48. Public Const WHDR_ENDLOOP = &H8&        '[01000][08] loop end block
  49. Public Const WHDR_INQUEUE = &H10&       '[10000][16] reserved for driver
  50.  
  51. '== MCI MM Return Codes ===============================================
  52. Public Const ERROR_SHARING_VIOLATION = 32
  53. Public Const MMSYSERR_NOERROR = 0                          '  no error
  54. Public Const MMSYSERR_BASE = 0
  55. Public Const MMSYSERR_ERROR = (MMSYSERR_BASE + 1)          '  unspecified error
  56. Public Const MMSYSERR_BADDEVICEID = (MMSYSERR_BASE + 2)    '  device ID out of range
  57. Public Const MMSYSERR_NOTENABLED = (MMSYSERR_BASE + 3)     '  driver failed enable
  58. Public Const MMSYSERR_ALLOCATED = (MMSYSERR_BASE + 4)      '  device already allocated
  59. Public Const MMSYSERR_INVALHANDLE = (MMSYSERR_BASE + 5)    '  device handle is invalid
  60. Public Const MMSYSERR_NODRIVER = (MMSYSERR_BASE + 6)       '  no device driver present
  61. Public Const MMSYSERR_NOMEM = (MMSYSERR_BASE + 7)          '  memory allocation error
  62. Public Const MMSYSERR_NOTSUPPORTED = (MMSYSERR_BASE + 8)   '  function isn't supported
  63. Public Const MMSYSERR_BADERRNUM = (MMSYSERR_BASE + 9)      '  error value out of range
  64. Public Const MMSYSERR_INVALFLAG = (MMSYSERR_BASE + 10)     '  invalid flag passed
  65. Public Const MMSYSERR_INVALPARAM = (MMSYSERR_BASE + 11)    '  invalid parameter passed
  66. Public Const MMSYSERR_LASTERROR = (MMSYSERR_BASE + 11)     '  last error in range
  67.  
  68. Public Const WAVERR_BASE = 32
  69. Public Const WAVERR_BADFORMAT = (WAVERR_BASE + 0)          '  unsupported wave format
  70. Public Const WAVERR_STILLPLAYING = (WAVERR_BASE + 1)       '  still something playing
  71. Public Const WAVERR_UNPREPARED = (WAVERR_BASE + 2)         '  header not prepared
  72. Public Const WAVERR_LASTERROR = (WAVERR_BASE + 3)          '  last error in range
  73. Public Const WAVERR_SYNC = (WAVERR_BASE + 3)               '  device is synchronous
  74.  
  75. '== flag values for wFlags parameter ==================================
  76. Public Const SND_SYNC = &H0                 '  play synchronously (default)
  77. Public Const SND_ASYNC = &H1                '  play asynchronously
  78. Public Const SND_NODEFAULT = &H2            '  don't use default sound
  79. Public Const SND_MEMORY = &H4               '  lpszSoundName points to a memory file
  80. Public Const SND_LOOP = &H8                 '  loop the sound until next sndPlaySound
  81. Public Const SND_NOSTOP = &H10              '  don't stop any currently playing sound
  82.  
  83. '== MCI Wave API Declarations ================================================
  84. Declare Function timeGetTime Lib "winmm.dll" () As Long
  85. Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal SoundData As Any, ByVal uFlags As Long) As Long
  86.  
  87. Declare Function waveInOpen Lib "winmm.dll" (lphWaveIn As Long, ByVal uDeviceID As Long, lpFormat As WAVEFORMATEX, ByVal dwCallback As Long, ByVal dwInstance As Long, ByVal dwFlags As Long) As Long
  88. Declare Function waveInPrepareHeader Lib "winmm.dll" (ByVal hWaveIn As Long, wH As WAVEHDR, ByVal uSize As Long) As Long
  89. Declare Function waveInUnprepareHeader Lib "winmm.dll" (ByVal hWaveIn As Long, wH As WAVEHDR, ByVal uSize As Long) As Long
  90. Declare Function waveInAddBuffer Lib "winmm.dll" (ByVal hWaveIn As Long, wH As WAVEHDR, ByVal uSize As Long) As Long
  91. Declare Function waveInStart Lib "winmm.dll" (ByVal hWaveIn As Long) As Long
  92. Declare Function waveInStop Lib "winmm.dll" (ByVal hWaveIn As Long) As Long
  93. Declare Function waveInReset Lib "winmm.dll" (ByVal hWaveIn As Long) As Long
  94. Declare Function waveInClose Lib "winmm.dll" (ByVal hWaveIn As Long) As Long
  95.  
  96. Declare Function waveOutOpen Lib "winmm.dll" (lphWaveOut As Long, ByVal uDeviceID As Long, lpFormat As WAVEFORMATEX, ByVal dwCallback As Long, ByVal dwInstance As Long, ByVal dwFlags As Long) As Long
  97. Declare Function waveOutPrepareHeader Lib "winmm.dll" (ByVal hWaveOut As Long, wH As WAVEHDR, ByVal uSize As Long) As Long
  98. Declare Function waveOutUnprepareHeader Lib "winmm.dll" (ByVal hWaveOut As Long, wH As WAVEHDR, ByVal uSize As Long) As Long
  99. Declare Function waveOutWrite Lib "winmm.dll" (ByVal hWaveOut As Long, wH As WAVEHDR, ByVal uSize As Long) As Long
  100. Declare Function waveOutClose Lib "winmm.dll" (ByVal hWaveOut As Long) As Long
  101. Declare Function waveOutReset Lib "winmm.dll" (ByVal hWaveOut As Long) As Long
  102. Declare Function waveOutPause Lib "winmm.dll" (ByVal hWaveOut As Long) As Long
  103. Declare Function waveOutRestart Lib "winmm.dll" (ByVal hWaveOut As Long) As Long
  104.  
  105. '== Global Memory Functions ==================================================
  106. Declare Function GlobalAlloc Lib "kernel32" (ByVal wFlags As Long, ByVal dwBytes As Long) As Long
  107. Declare Function GlobalFree Lib "kernel32" (ByVal hMem As Long) As Long
  108. Declare Function GlobalLock Lib "kernel32" (ByVal hMem As Long) As Long
  109. Declare Function GlobalUnlock Lib "kernel32" (ByVal hMem As Long) As Long
  110.  
  111. Declare Sub CopyPTRtoBYTES Lib "Kernel32.dll" Alias "RtlMoveMemory" (ByRef ByteDest As Byte, ByVal PtrSrc As Long, ByVal length As Long)
  112. Declare Sub CopyBYTEStoPTR Lib "Kernel32.dll" Alias "RtlMoveMemory" (ByVal PtrDest As Long, ByRef ByteSrc As Byte, ByVal length As Long)
  113.  
  114. Public Const GMEM_MOVEABLE = &H2&
  115. Public Const GMEM_SHARE = &H2000&
  116. Public Const GMEM_ZEROINIT = &H40&
  117.  
  118. '== MCI User Defined Data Types...=======================================
  119. Type WAVEHDR
  120.     lpData As Long              ' pointer to locked data buffer
  121.     dwBufferLength As Long      ' length of data buffer
  122.     dwBytesRecorded As Long     ' used for input only
  123.     dwUser As Long              ' for client's use
  124.     dwFlags As Long             ' assorted flags (see defines)
  125.     dwLoops As Long             ' loop control counter
  126.     wavehdr_tag As Long         ' reserved for driver
  127.     Reserved As Long            ' reserved for driver
  128.     hData As Long               ' handle to locked data buffer
  129. End Type
  130.  
  131. Type WAVEFORMATEX
  132.     wFormatTag As Integer       ' format type
  133.     nChannels As Integer        ' number of channels (i.e. mono, stereo, etc.)
  134.     nSamplesPerSec As Long      ' sample rate
  135.     nAvgBytesPerSec As Long     ' for buffer estimation
  136.     nBlockAlign As Integer      ' block size of data
  137.     wBitsPerSample As Integer   ' Bits Per Sample
  138.     cbSize As Integer           ' Size Of (FACT CHUNCK)
  139.     xBytes(MAXEXTRABYTES) As Byte ' (FACT CHUNCK)
  140. End Type
  141.  
  142.  
  143.